﻿using System;

namespace XchangeStreamer.Benchmark.Core
{
    public static class PerfCategories
    {
        public const string DotNetClrLoading = ".NET CLR Loading";
        public const string DotNetClrLocksAndThreads = ".NET CLR LocksAndThreads";
        public const string DotNetClrMemory = ".NET CLR Memory";
        public const string DotNetClrRemoting = ".NET CLR Remoting";
        public const string Process = "Process";
        public const string ServiceModelService = "ServiceModelService 4.0.0.0";

        //static PerfCounters()
        //{
        //    DotNetClrLoading = new PerfCategory(".NET CLR Loading", "Bytes in Loader Heap", "Current Assemblies", "Current Classes Loaded",
        //                                                            "Total Assemblies", "Total Classes Loaded");

        //    DotNetClrLocksAndThreads = new PerfCategory(".NET CLR LocksAndThreads", "# of current logical Threads", "# of current physical Threads",
        //                                                                            "# of current recognized threads", "# of total recognized threads",
        //                                                                            "Contention Rate / sec", "Current Queue Length", "Queue Length / sec",
        //                                                                            "Queue Length Peak", "rate of recognized threads / sec",
        //                                                                            "Total # of Contentions");

        //    DotNetClrMemory = new PerfCategory(".NET CLR Memory", "# Bytes in all Heaps", "# GC Handles", "# Gen 0 Collections", "# Gen 1 Collections",
        //                                                                                    "# Gen 2 Collections", "# of Pinned Objects",
        //                                                                                    "# of Sink Blocks in use", "# Total committed Bytes",
        //                                                                                    "# Total reserved Bytes", "% Time in GC", "Allocated Bytes/sec",
        //                                                                                    "Finalization Survivors", "Gen 0 heap size",
        //                                                                                    "Gen 0 Promoted Bytes/Sec", "Gen 1 heap size",
        //                                                                                    "Gen 1 Promoted Bytes/Sec", "Gen 2 heap size",
        //                                                                                    "Large Object Heap size", "Promoted Finalization-Memory from Gen 0",
        //                                                                                    "Promoted Memory from Gen 0", "Promoted Memory from Gen 1");

        //    DotNetClrRemoting = new PerfCategory(".NET CLR Remoting", "Remote Calls/sec", "Total Remote Calls");

        //    Process = new PerfCategory("Process", "% Privileged Time", "% Processor Time", "% User Time", "Elapsed Time", "Handle Count",
        //                                                            "IO Other Bytes/sec", "IO Other Operations/sec", "Page Faults/sec", "Page File Bytes",
        //                                                            "Page File Bytes Peak", "Pool Nonpaged Bytes", "Pool Paged Bytes", "Priority Base",
        //                                                            "Private Bytes", "Thread Count", "Virtual Bytes", "Virtual Bytes Peak", "Working Set",
        //                                                            "Working Set - Private", "Working Set Peak");

        //    ServiceModelService = new PerfCategory("ServiceModelService 4.0.0.0", "Calls", "Calls Duration", "Calls Outstanding", "Calls Per Second",
        //                                                                            "Percent Of Max Concurrent Sessions");
        //}

        //public static PerfCategory DotNetClrLoading
        //{
        //    get;
        //    set;
        //}

        //public static PerfCategory DotNetClrLocksAndThreads
        //{
        //    get;
        //    set;
        //}

        //public static PerfCategory DotNetClrMemory
        //{
        //    get;
        //    set;
        //}

        //public static PerfCategory DotNetClrRemoting
        //{
        //    get;
        //    set;
        //}

        //public static PerfCategory Process
        //{
        //    get;
        //    set;
        //}

        ////Engine@http:||localhost:6002|Streamer
        //public static PerfCategory ServiceModelService
        //{
        //    get;
        //    set;
        //}
    }
}
